package tool

import (
	"bufio"
	"encoding/json"
	"os"
)

type Config struct {
	AppName string `json:"app_name"`
	AppModel string `json:"app_model"`
	AppHost string `json:"app_host"`
	AppPort string `json:"app_port"`
	Sms SmsConfig `json:"sms"`
	Oss OssConfig `json:"oss"`
}

type SmsConfig struct {
	SignName string `json:"sign_name"`
	TemplateCode string `json:"template_code"`
	RegionId string `json:"region_id"`
	AppKey string `json:"app_key"`
	AppSecret string `json:"app_secret"`
}

type OssConfig struct {
	Bucket string `json:"bucket"`
	Endpoint string `json:"endpoint"`
	AccessKeyId string `json:"access_key_id"`
	AccessKeySecret string `json:"access_key_secret"`
	Domain string `json:"domain"`
}
var _cfg *Config = nil

func GetConfig()  *Config{
	return _cfg
}

func ParseConfig(path string) (*Config,error){
	file ,err := os.Open(path)
	if err != nil{
		panic(err)
	}
	defer file.Close()
	reader := bufio.NewReader(file)
	decoer := json.NewDecoder(reader)
	if err = decoer.Decode(&_cfg); err != nil{
		return nil,err
	}
	return _cfg,nil
}